package com.hsteach.dao.domain.buildingApply;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hsteach.common.annotation.Excel;
import com.hsteach.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 场所申请对象 tb_building_apply
 *
 * @author fanxquer
 * @date 2023-08-25
 */
@Data
public class BuildingApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 申请人id */
    @Excel(name = "申请人id")
    private String personId;

    /** 申请名 */
    @Excel(name = "申请名")
    private String applyName;

    /** 场所id */
    @Excel(name = "场所id")
    private String buildingId;

    /** 场所名 */
    @Excel(name = "场所名")
    private String buildingName;

    /** 场所名 */
    @Excel(name = "场所用途")
    private String buildingUse;

    /** 用途 */
    @Excel(name = "用途")
    private String userTo;

    /** 开始日期，索引列 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期，索引列", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginDate;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 申请类型，0场馆申请，1会议预约 */
    @Excel(name = "申请类型，0场馆申请，1会议预约")
    private Integer applyType;

    /** 占用模式，0时间模式，1课表模式 */
    @Excel(name = "占用模式，0时间模式，1课表模式")
    private Integer timeMode;

    /** 当前状态，0已申请，1已通过，-1已拒绝，-2已取消 */
    @Excel(name = "当前状态，0已申请，1已通过，-1已拒绝，-2已取消")
    private Integer curStatus;

    /** 创建人名称 */
    @Excel(name = "创建人名称")
    private String createByName;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewBy;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    private String reviewByName;

    /** 删除标记，0未删除，1删除 */
    @Excel(name = "删除标记，1有效，0无效")
    private Integer delStatus;

    /** 机构号，数据隔离 */
    @Excel(name = "机构号，数据隔离")
    private String orgCode;

    /** 重复申请状态，0正常，1重复 */
    @Excel(name = "重复申请状态，0正常，1重复")
    private Integer repeatStatus;

    /** 重复id，重复申请会有同一个重复id */
    @Excel(name = "重复id，重复申请会有同一个重复id")
    private String repeatId;

    private String repeatType;

    private Date repeatEndDate;

    private Date repeatBeginDate;

    private String rejectReason;

    /**
     * 学段，课表模式会有
     */
    private String period;

    /**
     * 建筑名
     */
    private String parentBuildingName;

    /**
     * 建筑id
     */
    private String parentBuildingId;

    /** 搜索用 **/
    private List<Integer> searchStatus;

    /**
     * sql查询生成的字段
     * 状态，0待开始、1进行中、2已结束、-2已取消、-1已拒绝
     */
    private Integer status;

    private List<String> buildingIds;

    private List<String> buildingUses;

    private Date gtBeginDate;

    private Date gtBeginTime;

    private List<Integer> timeModes;

    private String sReview;

    private List<String> sBuildingUses;

    private Date sGtBeginDate;

    private Date sGtBeginTime;

    private Date gtCreateTime;

    private Date ltCreateTime;

    private Date updateTime;

    /**
     * 审批时间
     */
    private Date approveTime;

}
